/******************************************************************
*
*    CyberUPnP for Java
*
*    Copyright (C) Satoshi Konno 2002
*
*    File: SSDPResponse.java
*
*    Revision;
*
*    01/14/03
*        - first revision.
*    01/23/04
*        - Oliver Newell
*        - Overided HTTPResponse::getHeader() for Intel UPnP control points.
*    03/16/04
*        - Thanks for Darrell Young
*        - Fixed to set v1.1 to the HTTP version.
*    10/20/04
*        - Brent Hills <bhills@openshores.com>
*        - Added setMYNAME() and getMYNAME().
*
******************************************************************/

package com.fiberhome.remoteime.cybergarage.unnp.ssdp;

import java.io.InputStream;

import com.fiberhome.remoteime.cybergarage.http.HTTP;
import com.fiberhome.remoteime.cybergarage.http.HTTPResponse;

public class SSDPResponse extends HTTPResponse
{
    ////////////////////////////////////////////////
    //    Constructor
    ////////////////////////////////////////////////

    public SSDPResponse()
    {
        setVersion(HTTP.VERSION_11);
    }

    public SSDPResponse(InputStream in)
    {
        super(in);
    }

    ////////////////////////////////////////////////
    //    ST (SearchTarget)
    ////////////////////////////////////////////////

    public void setST(String value)
    {
        setHeader(HTTP.ST, value);
    }

    public String getST()
    {
        return getHeaderValue(HTTP.ST);
    }

    ////////////////////////////////////////////////
    //    Location
    ////////////////////////////////////////////////

    public void setLocation(String value)
    {
        setHeader(HTTP.LOCATION, value);
    }

    public String getLocation()
    {
        return getHeaderValue(HTTP.LOCATION);
    }

    ////////////////////////////////////////////////
    //    USN
    ////////////////////////////////////////////////

    public void setUSN(String value)
    {
        setHeader(HTTP.USN, value);
    }

    public String getUSN()
    {
        return getHeaderValue(HTTP.USN);
    }

    ////////////////////////////////////////////////
    //    MYNAME
    ////////////////////////////////////////////////

    public void setMYNAME(String value)
    {
        setHeader(HTTP.MYNAME, value);
    }

    public String getMYNAME()
    {
        return getHeaderValue(HTTP.MYNAME);
    }

    ////////////////////////////////////////////////
    //    CacheControl
    ////////////////////////////////////////////////

    public void setLeaseTime(int len)
    {
        setHeader(HTTP.CACHE_CONTROL, "max-age=" + Integer.toString(len));
    }

    public int getLeaseTime()
    {
        String cacheCtrl = getHeaderValue(HTTP.CACHE_CONTROL);
        return SSDP.getLeaseTime(cacheCtrl);
    }

    ////////////////////////////////////////////////
    //    getHeader (Override)
    ////////////////////////////////////////////////

    public String getHeader()
    {
        StringBuffer str = new StringBuffer();

        str.append(getStatusLineString());
        str.append(getHeaderString());
        str.append(HTTP.CRLF); // for Intel UPnP control points.

        return str.toString();
    }

}
